package lms.view;

import com.sun.org.glassfish.gmbal.Description;
import lms.entity.Admin;
import lms.service.MangerService;
import lms.service.impl.ManagerServiceImpl;

import java.text.ParseException;
import java.util.Scanner;

/**
 * @description: 管理员
 * @author: Grape_Pip
 */
public class ManageView {
    public Scanner scan = new Scanner(System.in);
    private MangerService mangerService = new ManagerServiceImpl();
//
//    public ManageView() throws ParseException {
//        mLogin();
//    }

    /**
     * @return void
     * @Description //TODO  管理员选择操作
     **/
    public void mLogin() throws ParseException {
        mLoginShow();
        System.out.println("请输入您要选择的操作：");
        int option;
        while (!scan.hasNextInt()) {
            String stu = scan.next();
            System.out.println("请输入对应的操作数字哦！");
            System.out.println("请重新输入吖：");
        }
        option = scan.nextInt();
        switch (option) {
            case 1:
//                登录操作：管理员账号，密码
                System.out.println("请输入您的账户:");
                String mName = scan.next();
                System.out.println("请输入您的密码：");
                String mPwd = scan.next();
                Admin adminUser = new Admin(mName, mPwd);
                boolean flagLogin = mangerService.managerLogin(adminUser);
                if (flagLogin) {
//                    登录成功
                    System.out.println("登录成功！");
//                    成功后的操作：管理员选择操作
                    mOperation();
                } else {
                    System.out.println("用户名或密码错误！");
                }
                mLogin();
                break;
            case 2:
//                注册操作：账户，密码
                System.out.println("请输入注册的账户名：");
                String mrName = scan.next();
                System.out.println("请输入注册的账户密码：");
                String mrPwd = scan.next();
//                调用方法

                boolean flagRegist = mangerService.managerRegister(mrName, mrPwd);
                if (flagRegist) {
//                    注册成功
                    System.out.println("注册成功！即将返回上一层进行登录~");
                    mLogin();
                }else{
                    System.out.println("注册失败！请重新注册哦~");
                    mLogin();
                }
                break;
            case 0:
                //退出系统
                System.exit(0);
                break;
            default:
                System.out.println("敬请期待...");
                mLogin();

        }
    }


    /**
     * @return void
     * @Description //TODO  管理员登录成功后显示界面
     **/
    public void mLoginShow() {
        System.out.println("========== 图书馆管理系统 v2.0 ======");
        System.out.println("|------------ 1、登录 ------------|");
        System.out.println("|------------ 2、注册 ------------|");
        System.out.println("|------------ 0、退出 ------------|");
    }

    /**
     * @return void
     * @Description //TODO  管理员登录成功后的操作界面
     **/
    public void mOperationShow() {
        System.out.println("^========图书馆管理系统 v2.0========^");
        System.out.println("<========  欢迎您，管理员！ ========>");

        System.out.println("|---------- 1、图书管理 -----------|");
        System.out.println("|---------- 2、读者管理 -----------|");
        System.out.println("|---------- 3、借阅管理 -----------|");
        System.out.println("|---------- 0、退出登录 -----------|");
    }

    /**
     * @return void
     * @Description //TODO  管理员控制台选择相应功能进行管理
     * @Param []
     **/
    public void mOperation() throws ParseException {
        mOperationShow();
        System.out.println("请输入您要选择的操作：");
        int option;
        while (!scan.hasNextInt()) {
            String stu = scan.next();
            System.out.println("请输入对应的操作数字哦！");
            System.out.println("请重新输入吖：");
        }
        option = scan.nextInt();
        switch (option) {
            case 1:
//                跳转至图书管理界面
                new ManageBookView();
                break;
            case 2:
//                跳转至读者管理界面
                new ManageReaderView();
                break;
            case 3:
//                跳转至借阅界面管理
                new ManageBorrowView();
                break;
            case 0:
                mLogin();
                break;
            default:
                System.out.println("其它功能敬请期待...");
                mOperation();
        }
    }

}
